压缩纹理

Kanzi 中,您可以对压缩纹理以及预压缩过的 DXT 纹理使用 ASTC、ATC、ETC 和 PVRTC 算法。

如果您的应用程序尝试从内存读取的数据超过内存能够处理的量,则读取内存将成为您应用程序的性能瓶颈。如果您的目标硬件支持上述任何压缩方法,则可以使用纹理压缩来减少内存带宽并提高应用程序的性能。您可以使用现代化 ASTC 算法实现相对来说最小的文件和最佳图像质量。

压缩级别的最佳表现取决于您的目标设备。高压缩级别使用的 CPU 多,但占用内存带宽少,而低压缩级别使用的 CPU 少,但占用内存带宽多。

Kanzi 应用程序会将压缩的纹理直接发送到 GPU,以减少互换数据量并且运行时(例如加载 libJPEG 或 libPNG)无需在 CPU 端执行预处理。

例如,一个未解包的 256x256 像素的 RGB 纹理将使用 196 kb 内存(256 * 256 * 3 字节)。压缩时:

如果您的目标硬件不支持上述任何压缩算法,则在某些情况下,raw 图像格式的传输速度会比任何压缩算法都快。处理单个的小型图像时尤其如此。

如果目标硬件不支持所选的纹理压缩算法,您在目标设备上运行Kanzi 应用程序时,Kanzi 会向日志打印警告消息。Kanzi 将您使用目标硬件不支持的压缩纹理格式的表面涂黑。

由于 OpenGL 期望 DXT 纹理数据首先在最后一行,因此垂直翻转压缩 DXT 文件。请注意,您可以在 Kanzi 应用程序中使用 DXT 文件,但由于 GPU 限制,在 Win32 仿真中不支持 DXT 文件。请参阅 导入图像

Kanzi Studio 会在您创建 kzb 文件时压缩图像,但您也可以手动压缩图像。请参阅 手动预处理图像

建议

Kanzi Studio 压缩图像时,它默认使用您的计算机上的可用 CPU 资源。要在 Kanzi Studio 压缩多个图像的同时为其他应用程序释放 CPU 资源,请选择编辑 (Edit) > 用户首选项 (User Preferences) 并在高级 (Advanced) 选项卡中调整要并行压缩的图像 (Images to compress in parallel) 设置的值。
要并行压缩的图像 (Images to compress in parallel) 设置限制压缩多张图像时 Kanzi Studio 使用的逻辑内核的数量。您的计算机中的逻辑内核数量决定最大 (Maximum) 值。

使用 ASTC 算法

如果您的目标硬件支持 ASTC 算法,请使用 ASTC 算法以获得最佳效果。ASTC 算法与旧的 ATC、ETC 和 PVRTC 算法相比,创建的文件更小,图像质量更佳。

要使用 ASTC 算法:

  1. Kanzi Studio素材库 (Library) 中,选择 资源文件 (Resource Files) > 图像 (Images),然后选择您要应用压缩的图像。
  2. 属性 (Properties) 中,将目标格式 (Target Format) 属性设置为ASTC
  3. 属性 (Properties) 中设置:
    建议

    If Kanzi Studio flips an image that you use as the face of a 环境纹理贴图 (Cube-map Texture), in the 属性 (Properties) set the Flip Before Compressing property to True.
    Kanzi Studio does this automatically for dds images that you import to your project and set to use ASTC compression.
    See 使用环境纹理贴图.

使用 ATC 算法

要使用 ATC 算法:

  1. Kanzi Studio素材库 (Library) 中,选择 资源文件 (Resource Files) > 图像 (Images),然后选择您要应用压缩的图像。
  2. 属性 (Properties) 中,将目标格式 (Target Format) 属性设置为ATC
  3. ATC 压缩方案 (ATC Compression Scheme) 属性设置为:

使用 ETC 算法

要使用 ETC 算法:

  1. Kanzi Studio素材库 (Library) 中,选择 资源文件 (Resource Files) > 图像 (Images),然后选择您要应用压缩的图像。
  2. 属性 (Properties) 中,将目标格式 (Target Format) 属性设置为您想要使用的 ETC 压缩:

使用 PVRTC 算法

PVRTC 算法最适合照片级真实感纹理。 Kanzi 支持根据 PVRTC1 和 PVRTC2 方案进行的 PVRTC 压缩。 PVRTC2 的压缩质量要高于 PVRTC1,对于需要急剧阿尔法迁移的纹理尤其如此,但并非所有 PowerVR 硬件都支持。此外,只有 Imagination Technologies 硬件或者使用开发模拟器的桌面平台支持 PVRTC 压缩。

使用 PVRTC 压缩纹理时,要获得正确的结果,纹理必须是正方形纹理,且其大小必须是二的幂。

要使用 PVRTC 算法:

  1. Kanzi Studio素材库 (Library) 中,选择 资源文件 (Resource Files) > 图像 (Images),然后选择您要应用压缩的图像。
  2. 属性 (Properties) 中,将目标格式 (Target Format) 属性设置为PVRTC
  3. 属性 (Properties) 中设置:

手动预处理图像

Kanzi Studio 会在您创建 kzb 文件时压缩图像,但您也可以手动压缩图像。要手动处理图像,在素材库 (Library) > 资源文件 (Resource Files) > 图像 (Images) 中右键点击一张或多张您要处理的图像,然后选择预处理图像 (Preprocess images)

建议

Kanzi Studio 压缩图像时,它默认使用您的计算机上的可用 CPU 资源。要在 Kanzi Studio 压缩多个图像的同时为其他应用程序释放 CPU 资源,请选择编辑 (Edit) > 用户首选项 (User Preferences) 并在高级 (Advanced) 选项卡中调整要并行压缩的图像 (Images to compress in parallel) 设置的值。
要并行压缩的图像 (Images to compress in parallel) 设置限制压缩多张图像时 Kanzi Studio 使用的逻辑内核的数量。您的计算机中的逻辑内核数量决定最大 (Maximum) 值。

另请参阅

调整数据大小

并行加载资源

使用 mipmap

过滤纹理

排除应用程序的性能问题

图像和纹理最佳实践

最佳实践

图像

使用环境纹理贴图

配置 Kanzi Studio 工程